iT邦幫忙

2023 iThome 鐵人賽

DAY 3
2
自我挑戰組

用ChatGPT詠唱來完成工作與點亮前後端技能樹系列 第 3

【Day3】示範:使用chatGPT撰寫程式解決算術相關問題

  • 分享至 

  • xImage
  •  

目前這個系列已挑選ChatGPT、前端&React相關章節出版成書!
感謝大家的閱讀與支持!
《用 ChatGPT 詠唱來點亮 React & 前端技能樹》
歷經重新整理、校正、編排、與修改後,讓章節內容之間的銜接更平順,除了補充上更多的解說之外,甚至有部分章節為重新撰寫的內容,讓理解變得更輕鬆!
目前已在天瓏書局博客來金石堂等通路都買得到了! 也有電子書的選擇!
歡迎各位點擊連結選購,謝謝大家~
https://ithelp.ithome.com.tw/upload/images/20240419/20135750lQM12by6v1.jpg


複雜的算術問題

上一篇提到,簡單的算術問題不要丟給ChatGPT,但如果是比較複雜的呢?

像是,前陣子我看到一篇文章
大意是說,如果將英文字母一對一的轉換成數字,也就是
a = 1 , b= 2, c=3 …. z = 26,若單字之間的空格不算數字,哪個句子或單字總和可以是100呢?
Knowledge = 96
Hardwork = 98

什麼是100呢? 你以為我要回答Attitude嗎

不,是IMPOTENCE (陽痿)

這個題目如果直接丟到ChatGPT請他幫你找更多類似的單字
我必須直接跟你說,他不會找,他會給你錯誤的答案
因為ChatGPT不會算術、不會運算

因此,像是這類的問題,應該要用程式解決!

可以挑一個你比較熟悉的語言,或是方便執行的語言
然後和ChatGPT進行題目的敘述

方式大致上可以有兩種,以下是示範

方式一: 直接和ChatGPT完整敘述題目

https://ithelp.ithome.com.tw/upload/images/20230914/201357504mWlp4IhGe.png

然後這是ChatGPT的回答
https://ithelp.ithome.com.tw/upload/images/20230914/20135750fFUqrXdkfx.png

function calculateStringValues(inputArray) {
    const charCodeA = 'A'.charCodeAt(0) - 1; // 取得大寫A的unicode碼 - 1
    const charCodea = 'a'.charCodeAt(0) - 1; // 取得小寫a的unicode碼 - 1
    const resultArray = [];

    for (let str of inputArray) {
        let sum = 0;

        for (let i = 0; i < str.length; i++) {
            let charCode = str.charCodeAt(i);

            if (charCode >= 65 && charCode <= 90) { // 大寫字母
                sum += charCode - charCodeA;
            } else if (charCode >= 97 && charCode <= 122) { // 小寫字母
                sum += charCode - charCodea;
            } else if (charCode === 32) { // 空格
                sum += 0;
            }
        }

        if (sum === 100) {
            resultArray.push(str);
        }
    }

    return resultArray;
}

問題夠簡單,或是敘述的方式夠清楚,能讓ChatGPT明白任務內容和可能需要進行的防呆措施
那麼ChatGPT就能夠直接吐出一個可以執行的function

但若問題太複雜,或是ChatGPT吐出的答案執行起來都是錯的呢?
那麼你可以嘗試第二種方式

方式二: 拆分成細小問題,拆分問題之後再發問

這個方式就比較需要有程式的邏輯思維了

那一樣用相同題目當作範例,我自己對於問題的拆解步驟是

  • 寫一個function 來判斷讀進來的單字總合為多少
  • 再設計一個function,搭配第一個function,用來找出輸入陣列中有哪些總合為100

實際詢問起來的步驟與效果我一一演示

1. 寫一個function 來判斷讀進來的單字總合為多少

https://ithelp.ithome.com.tw/upload/images/20230914/20135750PC447zWJeD.png

https://ithelp.ithome.com.tw/upload/images/20230914/20135750L2U3nzURaY.png

2. 再設計一個function,用來找出有哪些總合為100

https://ithelp.ithome.com.tw/upload/images/20230914/20135750F04GovoMb9.png

最後一步: 請ChatGPT提供大量的單字讓你當作程式的輸入

用來找尋是否還有其他單字組合,是數字總合為100的
https://ithelp.ithome.com.tw/upload/images/20230914/20135750sTrvNW2Pcu.png

以下是ChatGPT回給我的
https://ithelp.ithome.com.tw/upload/images/20230914/20135750CaqOtRvBb0.png

實際使用&操作

程式碼的右上角都有copy 的按鈕,可以輕易地複製ChatGPT提供的程式碼

function calculateStringSum(input) {
    // 先將字串轉換為小寫以處理大小寫問題
    input = input.toLowerCase();

    let sum = 0;

    for (let i = 0; i < input.length; i++) {
        let charCode = input.charCodeAt(i);

        if (charCode >= 97 && charCode <= 122) { // 檢查是否為英文字母
            sum += charCode - 96; // 97 - 1 = 96, 98 - 1 = 97, ...
        } else if (charCode === 32) { // 空格當作0
            sum += 0;
        }
    }

    return sum;
}

function validateStringArray(arr) {
    let result = [];

    for (let i = 0; i < arr.length; i++) {
        let sum = calculateStringSum(arr[i]);
        if (sum === 100) {
            result.push(arr[i]);
        }
    }

    return result;
}

只要打開F12就可以直接接上去在console中執行
https://ithelp.ithome.com.tw/upload/images/20230914/20135750N3wHEz0ka0.png

然後把ChatGPT提供的內容放進去function的參數中
https://ithelp.ithome.com.tw/upload/images/20230914/20135750trB1bSrwnU.png

第一波給的單字裡面沒有,沒關係我們再要更多個
https://ithelp.ithome.com.tw/upload/images/20230914/20135750NWkuLpgIvx.png

然後跑看看
https://ithelp.ithome.com.tw/upload/images/20230914/20135750GMuCs4x8oa.png

哇哦居然找到了!
我也很意外有找到,而且是blissful 呢
https://ithelp.ithome.com.tw/upload/images/20230914/20135750KCIWP1wJ0g.png

結論

如果這個問題,直接丟ChatGPT,他給你的單字有高機率是唬爛的,或是已經被找出來的
將問題拆解成程式問題,然後用程式的方式去解決,再請ChatGPT提供協助,會是最好的

並不是工程師的基底能力不重要,而是會有其他的能力逐漸變得重要
像是「敘述問題的能力」,也許在未來的AI世代中,將會變成一項重要的能力指標

我是期待著AI能夠帶來更多進步的前端工程師一宵三筵,我們明天見!


上一篇
【Day2】基礎:向chatGPT對話的提問技巧與問題限制
下一篇
【Day4】量身打造:利用Custom instructions (自訂指令) 來打造工程師的專屬助手
系列文
用ChatGPT詠唱來完成工作與點亮前後端技能樹56
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言